﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Diagnostics;

namespace ConsoleApp_core
{
    public class ExceptionType
    {
        public void Show()
        {
            var exception = new Exception();
            var argumentException = new ArgumentException();
            var argumentNullException = new ArgumentNullException();
            var argumentOutOfRangeException = new ArgumentOutOfRangeException();
            var appDomainUnloadedException = new AppDomainUnloadedException();
            //var some = new SomeException()    ...........

            /*很多很多异常类。有的继承ArgumentException，有的继承SystemException，....
             *但是，他们继承指向最终会指向Exception，所以可以看出他们的基类是Exception
             * 可以看到这些【异常类】都有Exception关键字。来，我们把他找出来，看看有多少。通过IDE肯定太麻烦了，要么通过微软的文档。要么通过反射。
             * 好，我们就用反射：(太菜了我，找不到)
             */
            //C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.dll
            //mscorlib.dll

            var assembly = Assembly.LoadFrom(@"C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.dll");
            var types = assembly.ExportedTypes;
            foreach (var item in types)
            {
                Console.WriteLine(item.Name);
            }


        }
    }
}
